The present invention relates generally to quality of service in Internet Protocol (IP) networks, and more specifically to prioritizing data packets in an IP network.
Quality of service (QoS) in Internet Protocol (IP) networks is the throughput guarantee provided by an IP network to different data streams that are transported over the IP network (i.e., a guaranteed throughput level).
Network components, such as routers, often rely on indication mechanisms in an IP header of a packet to route the packet correctly. Several IP packet standards, or versions, exist. For example, packets can follow the standards defined by Internet Protocol version 4 (IPv4) (i.e., IPv4 packets) or Internet Protocol version 6 (IPv6) (i.e., IPv6 packets).
FIG. 1 is a block diagram of an IPv4 packet header 100 including a Type of Service (TOS) field 104. The TOS field 104 is for Internet service quality selection. The type of service is specified via parameters such as Precedence, Delay, Throughput, and Reliability. The IPv4 header 100 also includes a Time-To-Live (TTL) field 108. The TTL field 108 contains a value that indicates to a network router or switch whether or not the packet has been in the network too long and is to be discarded. For a number of reasons, packets may not get delivered to their destination in a reasonable length of time. For example, incorrect routing tables may cause a packet to loop between two routers endlessly. A solution is to discard the packet after a certain time. The initial TTL value 108 is set in an 8 bit field of the packet header. Since each router is required to subtract at least one count from the TTL field, the count is usually used to indicate the number of router hops the packet is allowed before it must be discarded.
FIG. 2 is a block diagram of an IPv6 header 200 including a Traffic Class (TC) field 204. The IPv6 header 200 also includes a Hop Limit field 208. The Hop Limit field 208 indicates the maximum number of hops that the packet can travel before being discarded. The Hop Limit field 208 is similar to the TTL value in an IPv4 packet.
FIG. 3(a) provides more detail of the IPv4 TOS field 104. The TOS field 104 includes a Precedence field 304 and a Priority field 306. The Precedence field 304 is a field used to prioritize an IPv4 packet. The Precedence field 304 designates whether the network determines, using the Priority field 306, the priority of a packet or whether the Priority field 306 is ignored and the network does not determine the priority of a packet. The Priority field 306 allows the network to take of advantage of various queuing and congestion control mechanisms that may exist within the network.
FIG. 3(b) provides more detail of the IPv6 TC field 204. The TC field 204 is available for use by originating routers and/or forwarding routers to identify and distinguish between different classes or priorities of IPv6 packets. The TC field 204 is used to provide various forms of “differentiated service” for IPv6 packets. Differentiated Service Code Points (DSCP), or DiffServe, is a marker in the header of each IP packet that prompts network routers to apply differentiated grades of service to various packet streams, forwarding them according to different Per-Hop Behaviors (PHBs). This enables Internet and other IP-based network service providers to offer differentiated levels of service to customers and their information streams. DiffServ has also been implemented in the TOS field of an IPv4 packet.
When a packet enters an IP router, its IP header is inspected. The inspection determines a next hop and a priority with which the packet is forwarded from the current router. The priority is determined by interpreting the Precedence field 304 and Priority field 306 for the TOS field 104 of an IPv4 packet and the Differentiated Service Code Points (DSCP) value in the TC field 204 of an IPv6 packet. If a packet's header fields do not provide enough guidance to determine its priority, a deep packet inspection is performed to gain more information from which a priority decision can be made.
A packet's priority affects when the packet is scheduled to be transmitted to its next hop. In wired networks, the task of packet scheduling is to associate a packet with a time slot (at a constant power, data rate, and through one shared channel). In wireless networks, packet scheduling can be more general than that—its function is to schedule such resources as time slots, powers, data rates, channels, or a combination of them, when packets are transmitted. Specifically, based on a source's characteristics, QoS requirements, channel states, and/or queue lengths, a wireless scheduler assigns time slots, powers, data rates, and/or channels to the packets for transmission.
Real-time Transport Protocol (RTP) is an Internet protocol for transmitting real-time data such as audio and video. RTP supports streaming data. To schedule an RTP voice stream over a wireless channel, the time that the packet is due at a destination router (i.e., the packet's deadline) needs to be known by the router sending the voice stream. Packets of an RTP voice stream, however, may be encrypted. If the voice stream is encrypted, then the deadline cannot be retrieved from the packet. Specifically, if a packet is encrypted, then any method that involves packet inspection will typically not be effective because no additional knowledge of the importance of the packet data can be obtained due to the encryption.
Wireless links are typically either the first or last link in the network. The majority of QoS is often determined by behavior of the last wireless hop node (e.g., router). The last wireless hop node will not typically be able to use a packet's header alone to determine the relative importance of a packet among packets of the same service ensemble (e.g., packets associated with a single Voice over Internet Protocol (VoIP) telephone call).
Therefore, there remains a need for an improved way of identifying the priority of a packet at the last hop node.